import tkinter
import tkinter.messagebox     #这里是导入弹框类
import tkinter.filedialog     #这里导入的是文件类

def foo1():
    print('foo1')
    tkinter.messagebox.showinfo('星际旅行开始','星际旅行即将开始，请尽快进入休眠舱')

def foo2():
    print('foo2')
    tkinter.messagebox.showwarning('星际旅行中','星际旅行中，请勿离开休眠舱')

def foo3():
    print('foo3')
    tkinter.messagebox.showerror('星际旅行中','飞船控制系统出错，请检修')

def foo4():

    a = tkinter.messagebox.askyesno('紧急处理','是否重启飞船')
    if a == True:
        print('飞船即将重启，请系好安全带！')
    else:
        print('取消飞船重启')
    print(tkinter.messagebox.askyesno('紧急处理', '是否重启飞船'))

    # print(tkinter.messagebox.askokcancel('紧急处理', '是否重启飞船'))       # 返回值和上一个相同为 布尔型的True 和 Fasle

    # print(tkinter.messagebox.askquestion('紧急处理', '是否重启飞船'))         # 返回的是字符串 yes 和 no

    # print(tkinter.messagebox.askyesnocancel('紧急处理', '是否重启飞船'))      # 返回值和上一个相同为 布尔型的True 和 Fasle 还有一个none

def foo5():
    # 保存文件
    # a = tkinter.filedialog.askopenfile()     # 这里返回的是文件名
    # print(a.name)

    # 创建文件
    # a = tkinter.filedialog.asksaveasfile()
    # print(a)

    # 打开文件
    # a = tkinter.filedialog.askopenfile()
    # print(a)

    a = tkinter.filedialog.askopenfile()
    print(type(a))     # 返回的是a的类型
    print(a)           # a 自身包含 文件的地址信息 文件的读取模式
    print(a.read())    # 并且 可以直接通过 读取命令 直接读取 文件a 中的内容

    # 多个文件流对象
    # a = tkinter.filedialog.askopenfiles()      # 注意选择多个文件时  要记得按ctrl
    # print(type(a))







root = tkinter.Tk()  # 由于只是导入了tkinter这个类 所以定义时要写模块名.类名

root.title('星际穿越提示框')

root.geometry('300x300')

tkinter.Button(root,text='消息框',command=foo1).pack()
tkinter.Button(root,text='警告框',command=foo2).pack()
tkinter.Button(root,text='错误框',command=foo3).pack()
tkinter.Button(root,text='对话框',command=foo4).pack()
tkinter.Button(root,text='文件对话框',command=foo5).pack()

root.mainloop()